import { config } from '@/config/axios/config'
import { MockMethod } from 'vite-plugin-mock'

const { result_code } = config

const timeout = 1000

// const adminList = [
//   {
//     path: '/dashboard',
//     component: '#',
//     redirect: '/dashboard/analysis',
//     name: 'Dashboard',
//     meta: {
//       title: 'router.dashboard',
//       icon: 'ant-design:dashboard-filled',
//       alwaysShow: true
//     },
//     children: [
//       {
//         path: 'analysis',
//         component: 'views/Dashboard/Analysis',
//         name: 'Analysis',
//         meta: {
//           title: 'router.analysis',
//           noCache: true
//         }
//       },
//       {
//         path: 'workplace',
//         component: 'views/Dashboard/Workplace',
//         name: 'Workplace',
//         meta: {
//           title: 'router.workplace',
//           noCache: true
//         }
//       }
//     ]
//   },
//   {
//     path: '/external-link',
//     component: '#',
//     meta: {},
//     name: 'ExternalLink',
//     children: [
//       {
//         path: 'https://element-plus-admin-doc.cn/',
//         name: 'DocumentLink',
//         meta: {
//           title: 'router.document',
//           icon: 'clarity:document-solid'
//         }
//       }
//     ]
//   },
//   {
//     path: '/guide',
//     component: '#',
//     name: 'Guide',
//     meta: {},
//     children: [
//       {
//         path: 'index',
//         component: 'views/Guide/Guide',
//         name: 'GuideDemo',
//         meta: {
//           title: 'router.guide',
//           icon: 'cib:telegram-plane'
//         }
//       }
//     ]
//   },
//   {
//     path: '/components',
//     component: '#',
//     redirect: '/components/form/default-form',
//     name: 'ComponentsDemo',
//     meta: {
//       title: 'router.component',
//       icon: 'bx:bxs-component',
//       alwaysShow: true
//     },
//     children: [
//       {
//         path: 'form',
//         component: '##',
//         name: 'Form',
//         meta: {
//           title: 'router.form',
//           alwaysShow: true
//         },
//         children: [
//           {
//             path: 'default-form',
//             component: 'views/Components/Form/DefaultForm',
//             name: 'DefaultForm',
//             meta: {
//               title: 'router.defaultForm'
//             }
//           },
//           {
//             path: 'use-form',
//             component: 'views/Components/Form/UseFormDemo',
//             name: 'UseForm',
//             meta: {
//               title: 'UseForm'
//             }
//           },
//           {
//             path: 'ref-form',
//             component: 'views/Components/Form/RefForm',
//             name: 'RefForm',
//             meta: {
//               title: 'RefForm'
//             }
//           }
//         ]
//       },
//       {
//         path: 'table',
//         component: '##',
//         redirect: '/components/table/default-table',
//         name: 'TableDemo',
//         meta: {
//           title: 'router.table',
//           alwaysShow: true
//         },
//         children: [
//           {
//             path: 'default-table',
//             component: 'views/Components/Table/DefaultTable',
//             name: 'DefaultTable',
//             meta: {
//               title: 'router.defaultTable'
//             }
//           },
//           {
//             path: 'use-table',
//             component: 'views/Components/Table/UseTableDemo',
//             name: 'UseTable',
//             meta: {
//               title: 'UseTable'
//             }
//           },
//           {
//             path: 'ref-table',
//             component: 'views/Components/Table/RefTable',
//             name: 'RefTable',
//             meta: {
//               title: 'RefTable'
//             }
//           }
//         ]
//       },
//       {
//         path: 'editor-demo',
//         component: '##',
//         redirect: '/components/editor-demo/editor',
//         name: 'EditorDemo',
//         meta: {
//           title: 'router.editor',
//           alwaysShow: true
//         },
//         children: [
//           {
//             path: 'editor',
//             component: 'views/Components/Editor/Editor',
//             name: 'Editor',
//             meta: {
//               title: 'router.richText'
//             }
//           }
//         ]
//       },
//       {
//         path: 'search',
//         component: 'views/Components/Search',
//         name: 'Search',
//         meta: {
//           title: 'router.search'
//         }
//       },
//       {
//         path: 'descriptions',
//         component: 'views/Components/Descriptions',
//         name: 'Descriptions',
//         meta: {
//           title: 'router.descriptions'
//         }
//       },
//       {
//         path: 'image-viewer',
//         component: 'views/Components/ImageViewer',
//         name: 'ImageViewer',
//         meta: {
//           title: 'router.imageViewer'
//         }
//       },
//       {
//         path: 'dialog',
//         component: 'views/Components/Dialog',
//         name: 'Dialog',
//         meta: {
//           title: 'router.dialog'
//         }
//       },
//       {
//         path: 'icon',
//         component: 'views/Components/Icon',
//         name: 'Icon',
//         meta: {
//           title: 'router.icon'
//         }
//       },
//       {
//         path: 'echart',
//         component: 'views/Components/Echart',
//         name: 'Echart',
//         meta: {
//           title: 'router.echart'
//         }
//       },
//       {
//         path: 'count-to',
//         component: 'views/Components/CountTo',
//         name: 'CountTo',
//         meta: {
//           title: 'router.countTo'
//         }
//       },
//       {
//         path: 'qrcode',
//         component: 'views/Components/Qrcode',
//         name: 'Qrcode',
//         meta: {
//           title: 'router.qrcode'
//         }
//       },
//       {
//         path: 'highlight',
//         component: 'views/Components/Highlight',
//         name: 'Highlight',
//         meta: {
//           title: 'router.highlight'
//         }
//       },
//       {
//         path: 'infotip',
//         component: 'views/Components/Infotip',
//         name: 'Infotip',
//         meta: {
//           title: 'router.infotip'
//         }
//       },
//       {
//         path: 'input-password',
//         component: 'views/Components/InputPassword',
//         name: 'InputPassword',
//         meta: {
//           title: 'router.inputPassword'
//         }
//       },
//       {
//         path: 'sticky',
//         component: 'views/Components/Sticky',
//         name: 'Sticky',
//         meta: {
//           title: 'router.sticky'
//         }
//       }
//     ]
//   },
//   {
//     path: '/hooks',
//     component: '#',
//     redirect: '/hooks/useWatermark',
//     name: 'Hooks',
//     meta: {
//       title: 'hooks',
//       icon: 'ic:outline-webhook',
//       alwaysShow: true
//     },
//     children: [
//       {
//         path: 'useWatermark',
//         component: 'views/hooks/useWatermark',
//         name: 'UseWatermark',
//         meta: {
//           title: 'useWatermark'
//         }
//       },
//       {
//         path: 'useCrudSchemas',
//         component: 'views/hooks/useCrudSchemas',
//         name: 'UseCrudSchemas',
//         meta: {
//           title: 'useCrudSchemas'
//         }
//       }
//     ]
//   },
//   {
//     path: '/level',
//     component: '#',
//     redirect: '/level/menu1/menu1-1/menu1-1-1',
//     name: 'Level',
//     meta: {
//       title: 'router.level',
//       icon: 'carbon:skill-level-advanced'
//     },
//     children: [
//       {
//         path: 'menu1',
//         name: 'Menu1',
//         component: '##',
//         redirect: '/level/menu1/menu1-1/menu1-1-1',
//         meta: {
//           title: 'router.menu1'
//         },
//         children: [
//           {
//             path: 'menu1-1',
//             name: 'Menu11',
//             component: '##',
//             redirect: '/level/menu1/menu1-1/menu1-1-1',
//             meta: {
//               title: 'router.menu11',
//               alwaysShow: true
//             },
//             children: [
//               {
//                 path: 'menu1-1-1',
//                 name: 'Menu111',
//                 component: 'views/Level/Menu111',
//                 meta: {
//                   title: 'router.menu111'
//                 }
//               }
//             ]
//           },
//           {
//             path: 'menu1-2',
//             name: 'Menu12',
//             component: 'views/Level/Menu12',
//             meta: {
//               title: 'router.menu12'
//             }
//           }
//         ]
//       },
//       {
//         path: 'menu2',
//         name: 'Menu2Demo',
//         component: 'views/Level/Menu2',
//         meta: {
//           title: 'router.menu2'
//         }
//       }
//     ]
//   },
//   {
//     path: '/example',
//     component: '#',
//     redirect: '/example/example-dialog',
//     name: 'Example',
//     meta: {
//       title: 'router.example',
//       icon: 'ep:management',
//       alwaysShow: true
//     },
//     children: [
//       {
//         path: 'example-dialog',
//         component: 'views/Example/Dialog/ExampleDialog',
//         name: 'ExampleDialog',
//         meta: {
//           title: 'router.exampleDialog'
//         }
//       },
//       {
//         path: 'example-page',
//         component: 'views/Example/Page/ExamplePage',
//         name: 'ExamplePage',
//         meta: {
//           title: 'router.examplePage'
//         }
//       },
//       {
//         path: 'example-add',
//         component: 'views/Example/Page/ExampleAdd',
//         name: 'ExampleAdd',
//         meta: {
//           title: 'router.exampleAdd',
//           noTagsView: true,
//           noCache: true,
//           hidden: true,
//           showMainRoute: true,
//           activeMenu: '/example/example-page'
//         }
//       },
//       {
//         path: 'example-edit',
//         component: 'views/Example/Page/ExampleEdit',
//         name: 'ExampleEdit',
//         meta: {
//           title: 'router.exampleEdit',
//           noTagsView: true,
//           noCache: true,
//           hidden: true,
//           showMainRoute: true,
//           activeMenu: '/example/example-page'
//         }
//       },
//       {
//         path: 'example-detail',
//         component: 'views/Example/Page/ExampleDetail',
//         name: 'ExampleDetail',
//         meta: {
//           title: 'router.exampleDetail',
//           noTagsView: true,
//           noCache: true,
//           hidden: true,
//           showMainRoute: true,
//           activeMenu: '/example/example-page'
//         }
//       }
//     ]
//   },
//   {
//     path: '/error',
//     component: '#',
//     redirect: '/error/404',
//     name: 'Error',
//     meta: {
//       title: 'router.errorPage',
//       icon: 'ci:error',
//       alwaysShow: true
//     },
//     children: [
//       {
//         path: '404-demo',
//         component: 'views/Error/404',
//         name: '404Demo',
//         meta: {
//           title: '404'
//         }
//       },
//       {
//         path: '403-demo',
//         component: 'views/Error/403',
//         name: '403Demo',
//         meta: {
//           title: '403'
//         }
//       },
//       {
//         path: '500-demo',
//         component: 'views/Error/500',
//         name: '500Demo',
//         meta: {
//           title: '500'
//         }
//       }
//     ]
//   }
// ]

// const testList: string[] = [
//   '/dashboard',
//   '/dashboard/analysis',
//   '/dashboard/workplace',
//   'external-link',
//   'https://element-plus-admin-doc.cn/',
//   '/guide',
//   '/guide/index',
//   '/components',
//   '/components/form',
//   '/components/form/default-form',
//   '/components/form/use-form',
//   '/components/form/ref-form',
//   '/components/table',
//   '/components/table/default-table',
//   '/components/table/use-table',
//   '/components/table/ref-table',
//   '/components/editor-demo',
//   '/components/editor-demo/editor',
//   '/components/search',
//   '/components/descriptions',
//   '/components/image-viewer',
//   '/components/dialog',
//   '/components/icon',
//   '/components/echart',
//   '/components/count-to',
//   '/components/qrcode',
//   '/components/highlight',
//   '/components/infotip',
//   '/Components/InputPassword',
//   '/Components/Sticky',
//   '/hooks',
//   '/hooks/useWatermark',
//   '/hooks/useCrudSchemas',
//   '/level',
//   '/level/menu1',
//   '/level/menu1/menu1-1',
//   '/level/menu1/menu1-1/menu1-1-1',
//   '/level/menu1/menu1-2',
//   '/level/menu2',
//   '/example',
//   '/example/example-dialog',
//   '/example/example-page',
//   '/example/example-add',
//   '/example/example-edit',
//   '/example/example-detail',
//   '/error',
//   '/error/404-demo',
//   '/error/403-demo',
//   '/error/500-demo'
// ]
const roleList: {
  id: string
  roleName: string
  state: string
  createTime: string
}[] = [
  {
    id: '1',
    roleName: '系统管理员',
    state: 'enable',
    createTime: '2022-11-22 11:22:33'
  },
  {
    id: '2',
    roleName: '应用管理员',
    state: 'enable',
    createTime: '2022-11-22 11:22:33'
  },
  {
    id: '3',
    roleName: '普通用户',
    state: 'enable',
    createTime: '2022-11-22 11:22:33'
  }
]
const userList: {
  id: string
  account: string
  username: string
  authorizeState: string
}[] = [
  { id: '1', account: 'test1', username: '测试一', authorizeState: 'authorized' },
  { id: '2', account: 'test2', username: '测试二', authorizeState: 'authorized' },
  { id: '3', account: 'test3', username: '测试三', authorizeState: 'unauthorized' },
  { id: '4', account: 'test4', username: '测试四', authorizeState: 'authorized' },
  { id: '5', account: 'test5', username: '测试五', authorizeState: 'authorized' },
  { id: '6', account: 'test6', username: '测试六', authorizeState: 'authorized' }
]
export default [
  // 列表接口
  {
    url: '/role/list',
    method: 'get',
    timeout,
    response: () => {
      return {
        code: result_code,
        data: { list: roleList, total: roleList.length }
      }
    }
  },
  {
    url: '/role/detail',
    method: 'get',
    timeout,
    response: ({ query }) => {
      const { id } = query
      if (id) {
        return {
          code: result_code,
          data: roleList.find((element) => element.id == id)
        }
      }
    }
  },
  {
    url: '/role/create',
    method: 'post',
    timeout,
    response: () => {
      return {
        code: result_code,
        msg: '演示模式，请勿当真'
      }
    }
  },
  {
    url: '/role/delete',
    method: 'delete',
    timeout,
    response: () => {
      return {
        code: result_code,
        msg: '演示模式，请勿当真'
      }
    }
  },

  {
    url: '/role/bounded-menus',
    method: 'get',
    timeout,
    response: () => {
      return {
        code: result_code,
        data: [111, 331]
      }
    }
  },
  {
    url: '/role/bind-menus',
    method: 'post',
    timeout,
    response: () => {
      return {
        code: result_code,
        msg: '演示模式，请勿当真'
      }
    }
  },
  {
    url: '/role/users',
    method: 'get',
    timeout,
    response: ({ query }) => {
      const { authorizeState } = query
      const resultList = userList.filter((element) => element.authorizeState === authorizeState)
      return {
        code: result_code,
        data: {
          list: resultList,
          total: resultList.length
        }
      }
    }
  },
  {
    url: '/role/bind-users',
    method: 'post',
    timeout,
    response: () => {
      return {
        code: result_code,
        msg: '演示模式，请勿当真'
      }
    }
  },
  {
    url: '/role/unbind-users',
    method: 'delete',
    timeout,
    response: () => {
      return {
        code: result_code,
        msg: '演示模式，请勿当真'
      }
    }
  }
] as MockMethod[]
